package collectionzy;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class zy0205 {
    public static void main(String[] args) {
        List<Point> list = new ArrayList<>();
        list.add(new Point(5,8));
        list.add(new Point(15,60));
        list.add(new Point(57,89));
        list.add(new Point(1,4));
        list.add(new Point(10,8));
        list.add(new Point(22,35));
        System.out.println("list原始数据："+list);

        list.sort(new Comparator<Point>() {
            @Override
            public int compare(Point o1, Point o2) {
                return o1.getX()- o2.getX();
            }
        });
        System.out.println("list排序后数据："+list);

        list.sort((o1, o2) -> {
            int len1= o1.getX()*o1.getX()+o1.getY()*o1.getY();
            int len2 = o2.getX()*o2.getX()+o2.getY()*o2.getY();
            return len1-len2;

        });


//        Collections.sort(list, new Comparator<Point>() {
//            public int compare(Point o1, Point o2) {
//                int len1 = o1.getX()*o1.getX()+ o1.getY()* o1.getY();
//                int len2 = o2.getX()*o2.getX()+ o2.getY()* o2.getY();
//                return len1-len2;//升序
//                return len2-len1; //降序
//                return o1.getX()-o2.getX(); //按x坐标升序
//                return o2.getY()-o1.getY(); //按y坐标降序
//            }
//        });



        Collections.sort(list,(o1, o2) -> {
                    int len1 = o1.getX()*o1.getX()+ o1.getY()* o1.getY();
                    int len2 = o2.getX()*o2.getX()+ o2.getY()* o2.getY();
                    return len1-len2;
        });
        System.out.println("list排序后数据："+list);







//        List<collection.Point> list = new ArrayList<>();
//        list.add(new collection.Point(5,8));
//        list.add(new collection.Point(15,60));
//        list.add(new collection.Point(57,89));
//        list.add(new collection.Point(1,4));
//        list.add(new collection.Point(10,8));
//        list.add(new collection.Point(22,35));
//        System.out.println("list原始数据:"+list);
//
//        list.sort(new Comparator<collection.Point>() {
//            public int compare(collection.Point o1, Point o2) {
//                return o1.getX()- o2.getX();
//
//            }
//        });
//        System.out.println("list排序后数据:"+list);
//
//        list.sort((o1,o2)->{
//            int len1 = o1.getX()*o1.getX()+o1.getY()*o1.getY();
//            int len2 = o2.getX()*o2.getX()+o2.getY()*o2.getY();
//            return len1-len2; //升序
//        });
//
//
//
//        Collections.sort(list, new Comparator<Point>() {
//            public int compare(Point o1, Point o2) {
//                int len1 = o1.getX()*o1.getX()+ o1.getY()* o1.getY();
//                int len2 = o2.getX()*o2.getX()+ o2.getY()* o2.getY();
//                return len1-len2;//升序
//                return len2-len1; //降序
//                return o1.getX()-o2.getX(); //按x坐标升序
//                return o2.getY()-o1.getY(); //按y坐标降序
//            }
//        });
//
//
//
//        Collections.sort(list,(o1, o2) -> {
//            int len1 = o1.getX()*o1.getX()+ o1.getY()* o1.getY();
//            int len2 = o2.getX()*o2.getX()+ o2.getY()* o2.getY();
//            return len1-len2;
//        });
//        System.out.println("list排序后数据:"+list);
    }
}



